<?php

class controlador_anuncios {

    public function inicio() {
        echo 'hola';
    }

    /**
     * Formulario para ver anuncios
     */
    public function ver_banner() {

        $data = file_get_contents("http://api.hostip.info/get_json.php?ip=77.228.45.185");
        //$data = file_get_contents("http://api.hostip.info/get_json.php?ip=91.121.99.93");

        $products = json_decode($data, true);

        $country = $products['country_code'];

        //print_r($_GET);die();
        $site = $_GET['host'];
        //$site = 'weokey';

        $obj_anuncio = new Anuncio();

        $anuncios = $obj_anuncio->obtener_anuncios_impresion($country, $site);

        if (count($anuncios) == 0) {
            $url = "http://weokey.net";
            $imagen = "default.png";
            $nombre = "anunciate aquí";
        } else {
            $pos_aleatoria = rand(0, count($anuncios) - 1);

            $url = $anuncios[$pos_aleatoria]['url'];
            $imagen = $anuncios[$pos_aleatoria]['imagen'];
            $nombre = $anuncios[$pos_aleatoria]['nombre'];

            $obj_anuncio->delete_anunciosimpresion($anuncios[$pos_aleatoria]['id']);
        }
        /* if (!$obj_anuncio->get($anuncios[$pos_aleatoria]['id'])) {
          header('location:inicio');
          die();
          }

          foreach ($obj_anuncio as $propiedad => $valor) {
          $params[$propiedad] = $valor;
          } */

        //echo $params['imagen'];

        include 'app/views/ver_banner.php';
    }

    /**
     * Formulario para ver anuncios
     */
    public function ver_anuncio() {
        $obj_anuncio = new Anuncio();

        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('comercial')) {
            if ($obj_anuncio->comprobar_anuncio_comercial($_GET['id'], $_SESSION['weokey_publicidad_usuario_id'])) {
                //comprueba que el anuncio pertenece al comercial
                $template = "template_comercial";
            } else {
                header('location:../inicio');
            }
        } else if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            $template = "template_administrador";
        } else if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('cliente')) {
            if ($obj_anuncio->comprobar_anuncio_cliente($_GET['id'], $_SESSION['weokey_publicidad_usuario_id'])) {
                //comprueba que el anuncio pertenece al cliente
                $template = "template_cliente";
            } else {
                header('location:../inicio');
            }
        } else {
            header('location:../inicio');
        }

        if ($obj_anuncio->get($_GET['id'])) {//si el anuncio aun existe
            include 'app/views/ver_anuncio.php';
        } else if ($obj_anuncio->get_historial($_GET['id'])) {//si el anuncio ha sido eliminado
            include 'app/views/ver_historico.php';
        } else {
            header('location:../inicio');
        }
    }

    public function registro_anuncio() {
        if ($_SESSION['weokey_publicidad_tipo_usuario'] != md5('comercial') && $_SESSION['weokey_publicidad_tipo_usuario'] != md5('administrador')) {
            header('location:inicio');
        } else {
            if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                $obj_anuncio = new Anuncio();

                //Limpiamos los campos y los guardamos en variables
                $nombre = test_input($_POST['nombre']);
                $descripcion = test_input($_POST['descripcion']);
                $archivo = $_FILES["archivo"]["name"];
                $impresionesxdia = test_input($_POST['impresionesxdia']);
                //$fechaimpresion = test_input($_POST['fechaimpresion']);
                $url = test_input($_POST['url']);
                $cliente = test_input($_POST['cliente']);
                $tarifa = test_input($_POST['tarifa']);

                $error = false;
                // MIME types permitidos
                $mime = array('image/jpg', 'image/jpeg', 'image/gif', 'image/png');
                // Buscamos si el archivo que subimos tiene el MIME type que permitimos en nuestra subida
                if (!in_array($_FILES['archivo']['type'], $mime)) {
                    $error = true;
                }
                // Le decimos al usuario que se olvido de subir un archivo
                if ($_FILES['archivo']['type'] == '') {
                    $error = true;
                }
                // Indicamos hasta que peso de archivo puede subir el usuario.
                if ($_FILES['archivo']['size'] > '2097152') {
                    $error = true;
                }


                //Obtenemos el id del comercial que lo registra
                $obj_comercial = new Comercial();
                $obj_comercial->get_codificado($_SESSION['weokey_publicidad_usuario']);
                $id = $_SESSION['weokey_publicidad_usuario_id'];
                //Comprobamos que se han introducido todos los datos obligatorios

                if (!empty($nombre) && !empty($archivo) && (!$error) && $cliente != 0 && $tarifa != 0) {
                    //$archivo = $_FILES["archivo"]["name"];

                    $i = 1;
                    while (file_exists("web/photos/$archivo")) {
                        $archivo = "($i)" . $_FILES["archivo"]["name"];
                        $i++;
                    }

                    $obj_tarifa = new Tarifa();
                    $obj_tarifa->get($tarifa);

                    $array_datos = array(
                        'nombre' => $nombre,
                        'descripcion' => $descripcion,
                        'imagen' => $archivo,
                        'impresiones_dia' => $impresionesxdia,
                        'impresiones' => $obj_tarifa->impresiones,
                        //'fechaimpresion' => $fechaimpresion,
                        'url' => $url,
                        'cliente' => $cliente,
                        'tarifa' => $tarifa,
                        'comercial' => $id
                    );

                    $obj_anuncio->set($array_datos);
                    $ultima_id = $obj_anuncio->get_last_id();

                    move_uploaded_file($_FILES["archivo"]["tmp_name"], "web/photos/$archivo");
                    $_SESSION['publicidad_msj'] = 'Anuncio guardado correctamente.';
                    header("location:ver_anuncio/$ultima_id");
                } else {
                    $_SESSION['publicidad_msj'] = 'No se han introducido todos los datos.';
                    header('location:registro_anuncio');
                }
            } else {
                if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('comercial')) {
                    $obj_comercial = new Comercial();
                    $params_clientes = $obj_comercial->get_clientes_by_comercial($_SESSION['weokey_publicidad_usuario_id'], 5);
                    $template = 'template_comercial';
                } else if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
                    $obj_clientes = new Cliente();
                    $params_clientes = $obj_clientes->obtener_todos_clientes();
                    $template = 'template_administrador';
                }
                $obj_tarifa = new Tarifa();
                $param_tarifas = $obj_tarifa->get_tarifas_activas();

                include 'app/views/registro_anuncio.php';
            }
        }
    }

    public function modificar_imagen() {
        if ($_SESSION['weokey_publicidad_tipo_usuario'] != md5('comercial') && $_SESSION['weokey_publicidad_tipo_usuario'] != md5('administrador')) {
            header('location:../inicio');
        } else {
            if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                $obj_anuncio = new Anuncio();

                //Limpiamos los campos y los guardamos en variables
                $archivo = $_FILES["archivo"]["name"];
                $id = $_GET['id'];
                
                $error = false;
                // MIME types permitidos
                $mime = array('image/jpg', 'image/jpeg', 'image/gif', 'image/png');
                // Buscamos si el archivo que subimos tiene el MIME type que permitimos en nuestra subida
                if (!in_array($_FILES['archivo']['type'], $mime)) {
                    $error = true;
                }
                // Le decimos al usuario que se olvido de subir un archivo
                if ($_FILES['archivo']['type'] == '') {
                    $error = true;
                }
                // Indicamos hasta que peso de archivo puede subir el usuario.
                if ($_FILES['archivo']['size'] > '2097152') {
                    $error = true;
                }

                //Comprobamos que se han introducido todos los datos obligatorios
                if (!(empty($archivo))  && (!$error)) {
                    //$archivo = $_FILES["archivo"]["name"];

                    $i = 1;
                    while (file_exists("web/photos/$archivo")) {
                        $archivo = "($i)" . $_FILES["archivo"]["name"];
                        $i++;
                    }

                    $array_datos = array(
                        'imagen' => $archivo,
                        'id' => $id
                    );

                    $obj_anuncio->modificar_imagen($array_datos);

                    move_uploaded_file($_FILES["archivo"]["tmp_name"], "web/photos/$archivo");
                    $_SESSION['publicidad_msj'] = 'Datos Guardados Correctamente.';
                    header("location:../ver_anuncio/$id");
                } else {
                    $_SESSION['publicidad_msj'] = 'No se han introducido todos los datos.';
                    header("location:../ver_anuncio/$id");
                }
            } else {
                header("location:../ver_anuncio/$id");
            }
        }
    }

    /**
     * metodo para listar anuncios
     */
    public function listado_anuncios() {
        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('comercial')) {
            $template = 'template_comercial';
            $obj_anuncio = new Anuncio();
            $params_anuncios = $obj_anuncio->get_anuncios_by_comercial($_SESSION['weokey_publicidad_usuario_id']);

            require 'app/views/listado_anuncios.php';
        } else if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            $template = 'template_administrador';
            $obj_anuncio = new Anuncio();
            $params_anuncios = $obj_anuncio->obtener_todos_anuncios();
            $template = "template_administrador";
            require 'app/views/listado_anuncios.php';
        } else {
            header('location:inicio');
        }
    }

    /**
     * Formulario para editar anuncio
     */
    public function editar() {
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            $obj_anuncio = new Anuncio();

            //Limpiamos los campos y los guardamos en variables
            $nombre = test_input($_POST['nombre']);
            $descripcion = test_input($_POST['descripcion']);
            $impresiones_dia = test_input($_POST['impresionesxdia']);
            $url = test_input($_POST['url']);
            $id = $_GET['id'];

            if (isset($_POST['activo'])) {
                $activo = 1;
            } else {
                $activo = 0;
            }

            $array_datos = array(
                "nombre" => $nombre,
                "descripcion" => $descripcion,
                "impresiones_dia" => $impresiones_dia,
                "url" => $url,
                "id" => $id
            );

            $obj_anuncio->edit($array_datos);
            $_SESSION['publicidad_msj'] = 'Datos Guardados Correctamente.';
            header("location: ../ver_anuncio/$id");
        } else {
            $obj_anuncio = new Anuncio();
            if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
                $template = 'template_administrador';
            } else if (($_SESSION['weokey_publicidad_tipo_usuario'] == md5('comercial')) && $obj_anuncio->comprobar_anuncio_comercial($_GET['id'], $_SESSION['weokey_publicidad_usuario_id'])) {
                $template = 'template_comercial';
            } else {
                header('location:../inicio');
            }

            if (!$obj_anuncio->get($_GET['id'])) {
                header('location:../listado_anuncios');
            } else {

                require 'app/views/modificar_anuncio.php';
            }
        }
    }

    /**
     * Método para eliminar un anuncio
     */
    public function eliminar() {
        $obj_anuncio = new Anuncio();
        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            $obj_anuncio->delete($_GET['id']);
            $_SESSION['publicidad_msj'] = 'Anuncio eliminado correctamente.';
            header('location:../listado_anuncios');
        } else if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('comercial')) {
            if ($obj_anuncio->comprobar_anuncio_comercial($_GET['id'], $_SESSION['weokey_publicidad_usuario_id'])) {
                $obj_anuncio->delete($_GET['id']);
                $_SESSION['publicidad_msj'] = 'Anuncio eliminado correctamente.';
                header('location:../listado_anuncios');
            } else {
                header('location:../listado_anuncios');
            }
        } else {
            header('location:../inicio');
        }
    }

    /**
     * Método para activar un anuncio
     */
    public function activar_anuncio() {
        $obj_anuncio = new Anuncio();
        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            $obj_anuncio->activar_anuncio($_GET['id']);
            $_SESSION['publicidad_msj'] = 'Anuncio activado.';
            header('location:../listado_anuncios');
        } else {
            header('location:../inicio');
        }
    }

    /**
     * Método para activar un anuncio
     */
    public function desactivar_anuncio() {
        $obj_anuncio = new Anuncio();
        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            $obj_anuncio->desactivar_anuncio($_GET['id']);
            $_SESSION['publicidad_msj'] = 'Anuncio desactivado.';
            header('location:../listado_anuncios');
        } else {
            header('location:../inicio');
        }
    }

    /**
     * Actualiza anunciosimpresion
     */
    public function actualizar() {
        $obj_anuncios = new Anuncio();
        $fecha_hoy = strftime("%Y-%m-%d", time());

        //Comprueba si se ha realizado la hoy la actualizacion
        if ($obj_anuncios->fecha_ultima_actualizacion() != $fecha_hoy) {
            $obj_anuncios->actualizar_fecha_anunciosimpresion();
            $obj_anuncios->actualizar_anunciosimpresion();
        }
    }

    /**
     * metodo para listar historial de anuncios
     */
    public function historial_anuncios() {
        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            $template = 'template_administrador';
            $obj_anuncio = new Anuncio();
            $params_anuncios = $obj_anuncio->obtener_historialanuncios();
            $template = "template_administrador";
            require 'app/views/historial_anuncios.php';
        } else {
            header('location:inicio');
        }
    }

}

?>